The present invention relates to an improved diagnostic method and apparatus and more particularly to a method and apparatus for initiating the retrying of commands executed by a peripheral controller of a data processing system without interrupting the operation of the central processing unit of a data processing system.
Prior Art
In general, peripheral controllers are provided to operate and control input/output devices of a data processing system. Normally, the peripheral controller is required to respond to commands received from a "channel" which controls the flow of information between the input/output devices and the main storage unit of the data processing system. In general, an input/output processing unit of the data processing system in response to an instruction in the main program of the data processing system is operative to fetch and execute an input/output operation via a "channel program" independently of the central processing unit. The channel program is normally made up of a number of channel command words or channel command entries related to one another which appear in a sequence specifying operations to be performed by a peripheral controller. A channel command entry or channel command word specifies the command to be executed by the controller, the storage area to or from which the data character is to be transferred and information indicating the number of data characters or bytes to be transferred.
Certain prior art systems retry channel commands upon the occurrence of a certain class of input/output errors without having to interrupt the program being executed by the central processing unit. However, in such systems, the decision of retrying a command is made by the channel or equivalent apparatus included in the system based upon status information received from the input/output device or peripheral controller under the control of the channel. Also, in such arrangements, the channel program selectively inhibits for allowing input/output devices or peripheral controllers to initiate retry of commands in accordance with the setting of a predetermined bit position within a channel command word.
The disadvantage of the above arrangements resides in the fact that command retry is controlled by the supervisory capability such as the operation system software or channel apparatus. Normally, such software or apparatus determines to retry commands based upon a limited amount of status information received from the device or the controller. In order to minimize the amount of information being transferred between the channel and the input/output device or controller, the indications of certain conditions occurring during the execution of a given command are normally synthesized. Therefore, in the case of such error conditions, retrying of the commands under those circumstances could result in aggravation of the error condition to the point where the original condition becomes almost undetectable. For example, where the input/output device of the controller is executing a write command in which a block of bytes are written on a magnetic tape medium under marginal conditions resulting in an error condition, retrying the command could result in mispositioning the read/write heads relative to the tape resulting in the destruction of a good block of data.
Accordingly, it is a primary object of the present invention to provide a technique which allows for retrying of channel commands without interrupting the operation of the data processing system.
It is a further object of the present invention to provide an improved peripheral control apparatus for peripheral devices to initiate selectively the re-execution of a channel command upon the occurrence of errors.
It is a still further object of the present invention to provide an improved peripheral controller which eliminates the need for requiring channel control apparatus to examine status information for determining whether or not command retry takes place.